/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.ekaaty.controller;

import br.com.ekaaty.bean.Pessoa;
import br.com.ekaaty.business.PessoaBusiness;
import br.com.ekaaty.dao.PessoaDao;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel;

/**
 *
 * @author otavio
 */
@ManagedBean
@SessionScoped
public class PessoaController extends GenericController<Pessoa> {

    public String getResposta() {


        PessoaBusiness pessoaBusiness = new PessoaBusiness();
        if (pessoaBusiness.duplicado(bean)) {
            String resposta = "Você já está cadastrado no evento";
            return resposta;
        }
        if (pessoaBusiness.emailCadastrado(bean)) {
            String resposta = " email já cadastrado";
            return resposta;
        }

        if (pessoaBusiness.vazio(bean)) {
            String resposta = " Preencham os campos";
            return resposta;
        }
        if (!pessoaBusiness.validado(bean)) {
            String resposta = "Nome muito curto";
            return resposta;
        }
        if (!pessoaBusiness.emailValido(bean)) {
            String resposta = "Email inválido";
            return resposta;
        }

        return "";
    }

    public void salvar() {
        bean.setPresente(true);
        PessoaBusiness pessoaBusiness = new PessoaBusiness();
        System.out.println("A faculdade código eh selecionado " + bean.getFaculdade());
        if (pessoaBusiness.adicionar(bean)) {
            bean = new Pessoa();
            FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "Sucesso", "Patircipante criado Com sucesso"));
        } else {
            FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, "Erro!", getResposta()));


        }

    }

    public void confirma() {

        bean = (Pessoa) data.getRowData();

        bean.setPresente(!bean.isPresente());
        PessoaDao dao = new PessoaDao();
        System.out.println("acao no " + bean.getNome());
        dao.atualizar(bean);
        bean.setNome("");
        bean.setEmail("");

    }

    public String novoCadastro() {

        bean = (Pessoa) data.getRowData();

        return "pessoa";

    }

    public DataModel getPresentes()
            throws Exception {
        PessoaDao dao = new PessoaDao();
        data = new ListDataModel(dao.getBuscarListaPresente(bean));

        return data;


    }

    @Override
    public DataModel getTodos() throws Exception {
        PessoaDao dao = new PessoaDao();
        data = new ListDataModel(dao.listar());
        System.out.println("O valor foi enviado do Datamodel do Faculdade");
        return data;
    }

    @Override
    public void update() {
        PessoaDao dao = new PessoaDao();
        dao.atualizar(bean);
        FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "Sucesso", "Patircipante editado Com sucesso"));
    }

    @Override
    public Pessoa initBean() {
        return new Pessoa();
    }

    @Override
    public void selecionado() {
        bean = (Pessoa) data.getRowData();
        System.out.println("selecionado " + bean.getNome());
    }

    @Override
    public void excluir() {
        PessoaDao dao = new PessoaDao();
        dao.remover(bean);
    }

    @Override
    public void limpar() {
        bean = new Pessoa();
    }
}
